The present invention relates to a method and system for increasing scalability and reliability of database applications, and, more particularly, the use of a scattering method and system to reduce system load and improve response performance. In the modem business environment, reliance upon computers and computer systems is found in almost every setting. Information (and its exchange, retrieval, processing, updating, and, of course, safekeeping) is perhaps the most common and most important aspect of computer interaction. Most commonly, the data records are placed within a server database that has been configured to store pertinent data. This server database is typically accessed by remote computer systems (“clients”) as and when the users of the client systems have needs to retrieve, manipulate or store information.
Despite advances in computer memory chip technology, the vast majority of database systems in operation today make use of physical storage systems, such as hard drives, to store the information arranged within the database structure. There are several factors which must be considered in the design and architecture of a database system; however, in almost all cases the defining issue of concern is speed. Although parallel processing and operation is commonplace with operations performed within the environment of a computer chip, the physical operations performed by hard drives and other physical storage devices mandate that nearly each and every database operation involves an activity that must be individually performed for a specific client user before the next desired operation may be performed for either the same or another next client user.
Database maintenance is a necessary evil; a properly tuned and maintained database is the most efficient in its ability to serve requests, perform updates, and record new data. During the operation of a database and subsequent periods of maintenance, it is often discovered that initial parameters are not currently desired. And greater efficiency may be achieved through fundamental restructuring of the database elements. Such processes are time-consuming; and, during such processes, the database is not available to client users for its intended purpose of serving data. Thus, mirror backups ideally must be maintained such that the level of service is not disrupted. Creating and maintaining backup copies of a database is often far from simplistic; by its nature a database is not static. Any backup copy that is developed is only a snapshot in time unless it too enjoys the same updates and modifications performed upon the primary master database. By implication, therefore, the backup server database system or systems must be similar in performance characteristics so as to keep up with the primary server database write and update operations.
In the majority of settings, client users access a server database simply for the purpose of reading data. It is not uncommon for the “Read” requests to outnumber the write requests by a factor of at least 5 to 1. For a Read request (defined as a non-transactional operation reading stored data), very little is required of the database other than to find and deliver the appropriate record being queried. Yet the physical operation of locating the record and returning its contents impose a cueing upon the client users such that their requests are processed on a first-come first-served basis.
Given that there are different operating systems (such as Microsoft Widows, OS 2, and quite a variety of flavors of Linux); there are also a variety of different off-the-shelf database applications as well as custom-developed database systems. Attempts to develop software systems to improve response times to Read requests and provide some options of scalability are, by and large, platform-specific and database-specific. This is an unattractive condition in view of the many different types of database users.
To maximize performance, and thus increase response times, it is typical for server databases to be quite robust in terms of their physical storage capabilities, processor speeds, volume of random access memory, etc. The larger and more powerful the database system, the larger numbers of client users can be served in the same amount of time. However, such size and power may be investments not fully appreciated for some time, if ever; and limitations always remain with respect to how many client users can be served adequately. Down-time in waiting for a response from the database is very frequently related to the overall level of productivity achieved by client users.
Thus, a great need exists for a system capable of improving resource management and permitting substantially simultaneous data access requests without undue expense in hardware.